1. Field of the Invention
The present invention relates generally to the field of real-time multimedia applications, and more particularly, to decreasing the playback delay at a client computer of a live streaming broadcast transmitted over a network.
2. Description of the Related Art
Live broadcasting of streaming multimedia over the Internet is becoming increasingly popular. Multimedia data includes audio, textual, and graphical (including video) data. Streaming data involves sending a continuous transmission of data from the server to a client. At the client computer, received data is buffered in a cache memory and continuously processed as soon as, or soon after, being received by the client. The client computer creates a multimedia output from the received multimedia data. The advantage of streaming is that the client computer does not have to wait until all data is downloaded from the server before some of the data is processed and the multimedia output is created. One application of streaming media over the Internet is the live broadcast which is characterized by synchronous client requests (i.e., multiple clients requesting the same multimedia data at the same time). The Internet is replete with websites dedicated to streaming multimedia content to millions of clients each day, including movie broadcasts, television, sports, talk and music radio, business events, seminars, and tutorials.
Multimedia applications, such as the one described above, involve the transfer of large amounts of information, placing a considerable load on the resources of the network, server, and client. As more people access network-based multimedia applications, there will be an increased demand for longer, more complicated, more flexible multimedia applications. One proposed solution for meeting this expected demand is multicast technology scaling live broadcasts, however, it does not address the problem of start-up latency. While recent enhancements in Internet streaming technology provide the basis for the current success of live broadcasting, it still lacks important features to approach the xe2x80x9clook and feelxe2x80x9d of the traditional broadcast technology. As an example, consumers have become accustomed to frequent channel switching without a delay in-between. It is expected to be able to view a channel as soon as the remote control button is depressed or the TV is turned on. Fast channel switching and immediate playback become even more important in the context of Internet radio. Current streaming technology, however, is unable to provide these features. After a client selects streaming content, the client will typically experience an associated delay, typically in the range of 5 to 10 seconds, before playback starts. This same delay is experienced during channel switching.
Accordingly, there exists a need to develop improved techniques to enhance current distribution systems to provide an acceptable means for distributing live broadcasts over a public network, such as the Internet.
The present invention discloses a method and apparatus for enhancing existing caching systems to better support the live broadcast of streaming multimedia over the Internet and other public network systems.
Illustrative embodiments of the present invention present a novel architecture and method for supporting high quality live streaming multimedia (SM) broadcasts on a public network system, such as the Internet. By using helper servers (HS), also referred to as helpers, which operate as caching and streaming agents inside the network, existing caching techniques are enhanced to better support live broadcasts by reducing playback delay at a client without sacrificing perceived playback quality. The faster a client""s buffer is filled, the faster playback starts. To achieve this end, in accordance with one aspect of the present invention, a playout history (PH) buffer is allocated and maintained at the HS in response to a client request for a particular live SM broadcast. The PH buffer operates as a moving window of fixed size that advances with the live broadcast stream, storing the last few seconds of the datastream. An advantage of utilizing PH buffers is that as subsequent client requests are received at the HS for a live SM broadcast which is currently being stored in a previously allocated PH buffer in response to a former request, each subsequent request can be serviced directly from the PH buffer thereby reducing start-up latency. An advantage in streaming data packets to each client is realized by virtue of having some number of them pre-stored in the PH buffer. When a request is received at the HS, the stored packets are immediately available for distribution to the requesting client.
Servicing subsequent requests from the PH buffer offers advantages over prior art methods for two reasons. First, each subsequent request is not required to be individually serviced from the content server as a unicast datastream thereby reducing network congestion problem by re-directing requests to the HS. Second, the PH buffer may be viewed as a form of short term dynamic cache storing only the last few seconds of data of the requested live SM broadcast, referred to as the playout history. The cached data is made immediately available to a requesting client to fill the client""s playout buffer as rapidly as possible.
In a preferred embodiment, upon receiving an initial client request for a live SM broadcast at an HS, the HS allocates a playout history (PH) buffer in its local memory to store the last few seconds of the live broadcast stream (i.e., the playout history). As the playout history is being stored in the PH buffer, the live SM broadcast is simultaneously streamed to a first requesting client. However, upon receiving subsequent requests for the same live SM broadcast, the playout history is available from the PH buffer to be streamed to the requester, filling each requestor""s playout buffer at a higher data rate than is achievable in the prior art, thereby reducing start-up latency.
According to another aspect of the present invention, in addition to the PH buffers allocated in response to client requests, the HS may also be manually pre-configured to maintain one or more pre-configured PH buffers. Each pre-configured PH buffer is allocated at a configuration stage prior to actual operation. These buffers presume that a certain number of live SM broadcasts will be in high demand. Such xe2x80x9cpopularxe2x80x9d live SM broadcasts may include, for example, vintage rock, classic rock, talk radio, etc. In contrast to the non pre-configured PH buffers, discussed above, which are allocated and de-allocated in response to fluctuating client demand, the pre-configured PH buffers are permanently maintained in the memory from the outset of operation, independent of client demand.